#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "wejscie.h"
/* pomija nieznaczące znaki w pliku z szablonem lub z danymi do wprowadzenia */
void pomin_znaki(FILE *plik, char znak)
{
  int c;
  while((c=getc(plik))!=znak)
    ;
}
/* wczytuje znaki do tablicy znakowej do momentu napotkania znaku nowego wiersza */
void wczytaj(FILE *plik, char *znaki, int *z)
{
  int c;
  for(c=0; (znaki[c]=getc(plik))!='\n'; c++)
    ;
  *z=c;
}
/* alokuje pamięć dla danych dotyczących wczytanego studenta */
void dodaj_studenta(char **lista, int x, char *line)
{
  int leng;
  char *m;
  leng=strlen(line);
  m=(char *)malloc(sizeof(*line)*leng);
  strncpy(m, line, leng);
  *(m+leng-1)='\0';
  lista[x]=m;
}
/*liczy znaki w linii*/
int policzznaki(char * linia , char znak) {
	int i;
	int wynik=0;
	if (linia == NULL) 
		return -1;
	else {
		for (i=0; i<strlen(linia); ++i) {
			if(*(linia+i)==znak)
				++wynik;
		}
		return wynik;
	}
}
/*int to ascii*/
void itoa(int n, char s[])
 {
     int i, sign;
 
     if ((sign = n) < 0)  /* record sign */
         n = -n;          /* make n positive */
     i = 0;
     do {       /* generate digits in reverse order */
         s[i++] = n % 10 + '0';   /* get next digit */
     } while ((n /= 10) > 0);     /* delete it */
     if (sign < 0)
         s[i++] = '-';
     s[i] = '\0';
     reverse(s);
 }
/*reverse*/
void reverse(char s[])
 {
     int i, j;
     char c;
 
     for (i = 0, j = strlen(s)-1; i<j; i++, j--) {
         c = s[i];
         s[i] = s[j];
         s[j] = c;
     }
 }
/*wczytuje dlugosc kolumn*/
void wczytaj_dlugosci_kolumn (char *linia, int kolumny []) {
	int licznik=0;
	int i=0;
	int temp;
  char tablica[4];
	for(i=0; i<strlen(linia); i++) {
		if (*(linia+i)!=':')
			;
		else {
			++i;
			sscanf(linia+i, "%d", &temp);
			kolumny[licznik++]= temp;
			itoa(temp, tablica);
			i=i+strlen(tablica);
		}
	}
}
